tp6连接oracle数据库save和insert语句执行成功但是报ORA | 您所在的位置:网站首页 › ora-00936: 缺失表达式一般是什么原因 › tp6连接oracle数据库save和insert语句执行成功但是报ORA |
SQLSTATE[HY000]: General error: 936 OCIStmtExecute: ORA-00936: 缺失表达式 (ext\pdo_oci\oci_statement.c:157) /** * 获取最近插入的ID * @access public * @param BaseQuery $query 查询对象 * @param string $sequence 自增序列名 * @return mixed */ public function getLastInsID(BaseQuery $query, string $sequence = null) { $pdo = $this->linkID->query("select {$sequence}.currval as id from dual"); $result = $pdo->fetchColumn(); return $result; } protected function supportSavepoint(): bool { return true; }错误现象: 使用thinkphp6连接oracle数据库时 使用save方法永远跳转到update 使用insert方法执行语句成功,但是总是报ORA-00936错误 原因分析: tp6主要是基于mysql 进行设计,mysql强制要求每个表都有主键,然而,oracle对此没有硬性要求。 所以tp6在insert或者update访问数据表时候都会先取得主键,然后再进行访问。 由于oracle大部分表格都没有主键,所以抛出错误。 解决方法: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |